package demo;

import java.util.LinkedList;
import java.util.Queue;

public class MyStack {
//使用两个队列实现
    Queue<Integer> queue1;//主队列
    Queue<Integer> queue2;//副队列

    public MyStack() {
        //队列由链表实现
        queue1=new LinkedList<Integer>();
        queue2=new LinkedList<Integer>();
    }

    public void push(int x) {
        //先把入栈元素放入副队列
        queue2.offer(x);
        //如果主队列不为空，再把所有队列元素搬到副队列
        while(!queue1.isEmpty()){
            queue2.offer(queue1.poll());
        }
        //交换队列，让辅助队列一直为空
        Queue<Integer> temp=queue1;
        queue1=queue2;
        queue2=temp;
    }

    public int pop() {
        return queue1.poll();

    }

    public int top() {
        return queue1.peek();

    }

    public boolean empty() {
        return queue1.isEmpty();
    }
}